// pages/promotion/promotion.js
var requests = require('../../requests/api.js');
var app = getApp()
import util from '../../utils/util.js'

Page({

  /**
   * 页面的初始数据
   */
  data: {
    goods: [],
    selectedTab: 0, // 当前的tab页面下标
    //没有更多
    loading: true, //加载框是否显示
    searchLoading: false, //把"上拉加载"的变量设为true，显示  
    searchLoadingComplete: false, //把“没有数据”设为false，隐藏  
    page: 1, //分页数据，从第一页开始
    promotionType: 2, //活动类型：2是打包购3是全场换购
    promotionId: 72, //活动id
    sortColumn: 1, //排序字段  1 上新, 2销量, 3价格
    order: 1, //升序还是降序，0降序，1升序
    btnStatus: 2, //按钮状态
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    new app.WeToast();

    this.setData({
      promotioinType: options.promotionType,
      promotionId: options.promotionId
    })
    this.request_productData(this.data.page); //加载产品列表数据

  },


  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },
  request_productData: function(page) {
    //网络请求的时候先把加载框加出来
    const self = this;
    self.setData({
      loading: false,
    });
    var params = {
      currentPage: page,
      pageSize: 10,
      promotionType: self.data.promotionType,
      promotionId: self.data.promotionId,
      sortColumn: self.data.selectedTab + 1,
      order: self.data.order
    };

    requests.getPromotionProducts(params, (res) => {
      if (!res.data.products) return;
      if (res.data.products.length == 0) { //没有数据
        self.setData({
          searchLoadingComplete: true, //把“没有数据”设为true，显示

        })
      } else { //说明还有数据
        self.setData({
          searchLoadingComplete: false, //把“没有数据”设为false，隐藏  

        })
      };
      self.setData({
        loading: true, //隐藏加载框
        goods: self.data.goods.concat(res.data.products) //给数组赋值
      })

    }, (data) => {
      self.setData({
        searchLoadingComplete: true, //把“没有数据”设为true，显示
        loading: true //隐藏加载框
      })
      if (util.alertNetworkError(data)) {
        self.wetoast.toast({
          title: data.resMsg,
        })
      }

    }, () => {
      self.setData({
        searchLoading: false //把"上拉加载"的变量设为false，隐藏  

      })
    });
  },
  //上拉触底
  moreData: function() {
    let that = this;
    console.log("uomcajsad")
    //如果还有数据就继续加载
    if (!that.data.searchLoading && !that.data.searchLoadingComplete) {
      that.setData({
        page: that.data.page + 1,
        searchLoading: true //把"上拉加载"的变量设为false，隐藏

      })
      that.request_productData(that.data.page)

    }
  },
  //MARK: -- Click
  // 顶部tab 点击事件
  changeTab: function(event) {
    var index = parseInt(event.currentTarget.dataset.tabid);
    var status = this.data.btnStatus
    var sort = 1
    //如果点击的第三个tab。则更新按钮的状态，
    if (index == 2) {
      //如果是升序的话改为降序，。否则就是升序
      if (status == 1) {
        status = 0
        sort = 0
      } else {
        status = 1
        sort = 1
      }
    } else {
      status = 2
      sort = 1
    }
    this.setData({
      selectedTab: index,
      page: 1,
      goods: [],
      btnStatus: status,
      order: sort
    })
    this.request_productData(this.data.page)
  },
  toDetailsTap: function(e) {
    var id = e.currentTarget.dataset.productid;
    wx.navigateTo({
      url: '../product/productDetail?productId=' + id,
    })
  },
  addCartTap: function(e) {
    if (app.isNeedLogin()) {
      this.getUserInfo()
      return
    };
    this.postAddToCart(e)
  },
  getUserInfo() {
    var that = this
    //调用应用实例的方法获取全局数据
    app.login({
      //success回调
      success: function(endUser) {
        //更新数据
      },
      fail: null,
      authFail: () => {},
    })
  },
  // 添加商品到购物车
  postAddToCart: function(e) {
    const that = this
    var productId = e.currentTarget.dataset.productid;
    var promotionId = this.data.promotionId;
    var params = {
      productId: productId,
      productQty: 1,
      promotionId: promotionId
    }
    // params += {
    //   promotionId: promotionId
    // }
    requests.post_addToCart(params, (res) => {
      if (res.resCode == 0) {
        this.wetoast.toast({
          title: '加入购物车成功',
        })

      } else {
        this.wetoast.toast({
          title: '加入购物车失败',
        })
      }
    }, (res) => {
      if (util.alertNetworkError(res)) {
        that.wetoast.toast({
          title: res.resMsg,
        })
      }
    }, {})
  },
  //scrollerview无法触发moredata，所以用这个
  onReachBottom: function(event) {
    this.moreData()
  },

})